public class Demo {
    /*public static void main(String[] args) throws ByteException{
        try{
            fact(20);
        }catch (ByteException e){
            e.printStackTrace();//打印哪一行出现异常
        }
    }
    static int fact(int n) throws ByteException{
        int ans = 1;
        for(int i=2; i<=n; i++) {
            ans *= i;
            if(ans > Byte.MAX_VALUE)
                throw new ByteException("超出Byte最大范围");
        }
        return ans;
    }*/
   /* public static void main(String[] args) {
        fact(20);
    }
    static int fact(int n){
        int ans = 1;
        try {
            for(int i=2; i<=n; i++) {
                ans *= i;
                if(ans > Byte.MAX_VALUE)
                    throw new ByteException("超出Byte最大范围");
            }
        }catch (ByteException e){
            e.printStackTrace();
        }
        return ans;
    }*/
    static int fact(int n) throws ByteException{
        int ans = 1;
        for(int i=2; i<=n; i++) {
            ans *= i;
            if(ans > Byte.MAX_VALUE)
                throw new ByteException("超出Byte最大范围");
        }
        return ans;
    }
}
class ByteException extends RuntimeException{
    public ByteException() {
    }
    public ByteException(String message) {
        super(message);
    }
}
